Vehicles, such as automobiles, off-road vehicles, agricultural tractors, or self-propelled agricultural implements, may be used in a variety of tasks (e.g., to transport people or goods from one location to another, to tow agricultural implements, to harvest, plow, cultivate, spray, etc.). Traditionally, vehicles are manually operated by an operator. That is, the steering and speed of a vehicle are controlled by an operator driving the vehicle. Unfortunately, the operator may not drive the vehicle along an efficient path from one location to another location as compared to autonomously controlled vehicles.
Accordingly, the number of applications for automated ground vehicles has been rapidly increasing. Examples include autonomous mining trucks, tractors, military target vehicles, and durability testing of passenger vehicles.
It is convenient to construct desired paths out of tangentially connected circular arc and straight line segments for autonomous vehicles, which have been shown to be optimal in terms of path length. Unfortunately, such paths cannot actually be driven if the steering angle is produced by a servo system, which introduces a finite steering rate causing lag, and most autonomous vehicles typically include a steering system that is rate-limited and has a finite steering rate due to a servo steering system that has a maximum turning rate. Autonomous vehicles also typically include a minimum right turn radius and a minimum left turn radius.
Furthermore, it may be desirable to control a vehicle to drive more general paths than those consisting of straight line segments and simple circular arcs having a constant curvature. In particular, it may be desirable to track path segments whose curvatures vary along the segment length (e.g., clothoid segments). Clothoid curves have a continuous rate of curvature as a function of path length. A clothoid is a curve where the curvature varies linearly with curve length. Paths generated with these types of curves are “drivable” in that no instantaneous changes in curvature rate are required. A clothoid path may parameterized by six quantities including initial position, initial heading, initial curvature, rate of curvature (with respect to path length) and path length (x0, y0, q0, κ, σ, s).
Current controllers are not suited to track general segments well, given their current design. These controllers may drive such paths under the assumption that transitions between segments are “unplanned” (e.g., the controller may simply switch to a new path segment at some time ahead of actually reaching the transition point). This rudimentary process is one way of dealing with assumptions of linear lag and a nonlinear rate-limited actuator. However, these controllers may experience path segment transitions as “disturbances” that the control system must continuously deal with, which may lead to degradation in controller performance. Moreover, these path controllers may use linear or nonlinear approaches to deal with these disturbances that do not result in linear dynamics in the off-path, normal error. Accordingly, previous controllers may not achieve optimal transitions between path segments.